package service;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;

import model.Curso;
import model.Pessoa;

public class CursoDAO extends GenericDAOImpl<Curso> {
	
	public CursoDAO(EntityManager em) {
		super.entityManager = em;
	}
	
	public Curso criaCurso(String centro, String departamento, String nome) {
		Curso curso = new Curso();
		curso.setCentro(centro);
		curso.setDepartamento(departamento);
		curso.setNome(nome);
		curso.setPessoas(new ArrayList<Pessoa>());
		
		insereObjeto(curso);
		
		return curso;
	}

	@Override
	public Curso localizaObjeto(Long objId) {
		Curso obj = entityManager.getReference(Curso.class, objId);
		return obj;
	}

	@Override
	public List<Curso> listaObjetos() {
		TypedQuery<Curso> query = entityManager.createQuery(
				"SELECT e FROM Curso e", Curso.class);
		return query.getResultList();
	}

	@Override
	public void deletaObjetos() {
		TypedQuery<Curso> query = entityManager.createQuery(
				"DELETE FROM Curso", Curso.class);
		query.executeUpdate();
	}

	public void addPessoa(Long id, Pessoa pessoa) {
		Curso curso = localizaObjeto(id);
		if (curso != null) {
			curso.getPessoas().add(pessoa);
			
		}
	}

}
